In this section, we will analyze the security risks faced by aid workers globally from temporal and geographical dimensions, showing overall trends and distribution of incidents.
1. Time Trend Analysis
First, let’s understand the changing trends in the number of security incidents over the past few years and the casualties caused by these incidents.
The chart above shows the trend in annual security incidents from 2000 to 2024. We can observe a slow increase in incidents over time, with a significant spike in 2018, followed by a decline in 2019, and then another peak in 2024.
The figure above shows the annual trend of affected persons by deaths, injuries and abductions. While the number of affected persons has been on a slow upward trend until 2024, the number of fatalities is particularly high in 2024, which may be attributed to the ongoing conflict in Palestine.
These two charts provide a chronological overview of security incidents and their impact on aid workers. The data shows a worrying pattern, with a general increase in incident rates over time. In particular, the sharp rise in fatalities in 2024 means that the global conflict brings a threat to the lives of humanitarian workers as well.
Now, let’s examine the most severe incidents from 2024 to better understand what contributed to this dramatic increase:
This table reveals a deeply concerning result: all of the deadliest incidents in 2024 occurred in the Palestinian territories. The extraordinary concentration of fatal incidents in this single region means the disastrous impact of the ongoing conflict on humanitarian workers. These incidents represent an unprecedented humanitarian crisis for aid workers in the region, which shows the urgent need for a ceasefire and peaceful resolution to the conflict.
2. Geographic Distribution Hotspot Analysis
Next, let’s analyze the global geographic distribution of security incidents to identify countries and regions with the highest risks.
The bubble chart above displays the geographic distribution of incidents. We can clearly see that most incidents are concentrated in the Middle East , South Asia, Africa, and around Mexico. Countries like Afghanistan, South Sudan, Syria and Sudan have a lot of historical data. In addition to this it can be seen that most of the countries in Africa are covered by war.
To further show details, we can create an interactive heat map showing the spatial clustering of security incidents:
The last chart shows the countries with the most affected people. As can be seen, Afghanistan has traditionally led the way in terms of casualties, as well as countries like South Sudan, which have been ravaged by war. Unusually, there have been almost no kidnappings in the Palestinian territories, suggesting that conflicts there tend to be more intense and deadly than those involving kidnappings.
Summary
Our analysis reveals concerning patterns in the security situation faced by aid workers all over the world, with a particularly sharp situation in the Palestinian territories in 2024. While the data shows an overall increasing trend in incidents globally over the years, the concentration of fatal incidents in the Palestinian territories in 2024 stands out as an unprecedented humanitarian emergency. Besides, the distinct pattern of high fatalities with almost no kidnappings in the Palestinian territories reflects the intense nature of the conflict there.These findings highlight the urgent need for an immediate ceasefire and peaceful resolution to the conflict in the Palestinian territories.
Afghanistan remains a chronic high-risk environment for aid workers. This problem may be due to the large number of humanitarian workers caught up in the war in Afghanistan.
The international community must prioritize the protection of humanitarian workers who risk their lives to provide essential services to vulnerable populations in conflict areas. Without such protection and a path to peace, the ability of aid organizations to operate effectively in those areas is severely compromised, further exacerbating the suffering of civilians. In addition, the risks to the work of these workers can be fundamentally eliminated if the various countries of interest can peacefully reach an agreement.
Source Code
---format: html: theme: cosmo toc: true toc-depth: 3 toc-title: "Contents" code-fold: true code-tools: true code-link: true fig-width: 10 fig-height: 6 fig-dpi: 300 smooth-scroll: true self-contained: true html-math-method: katex---```{python}#| include: falseimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport plotly.express as pximport plotly.graph_objects as gofrom plotly.subplots import make_subplotsimport foliumfrom folium.plugins import HeatMap, MarkerClusterimport geopandas as gpdimport warningswarnings.filterwarnings('ignore')pd.set_option('display.max_columns', None)plt.style.use('seaborn-v0_8-whitegrid')plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] =Falsedf = pd.read_csv('security_incidents.csv')df['Date'] = pd.to_datetime(df[['Year', 'Month', 'Day']].assign(Day=df['Day'].fillna(1)), errors='coerce')df['YearMonth'] = df['Date'].dt.to_period('M')```## Global Overview of Aid Worker Security IncidentsIn this section, we will analyze the security risks faced by aid workers globally from temporal and geographical dimensions, showing overall trends and distribution of incidents.### 1. Time Trend AnalysisFirst, let's understand the changing trends in the number of security incidents over the past few years and the casualties caused by these incidents.```{python}import plotly.graph_objects as goyearly_incidents = df.groupby('Year').size().reset_index(name='Incident Count')fig = go.Figure()fig.add_trace( go.Scatter( x=yearly_incidents['Year'], y=yearly_incidents['Incident Count'], mode='lines+markers', name='Incidents', line=dict(width=3, color='#1f77b4'), marker=dict(size=8) ))fig.update_layout( title={'text': 'Annual Security Incidents (2000-2024)','y':0.9,'x':0.5,'xanchor': 'center','yanchor': 'top' }, xaxis_title='Year', yaxis_title='Incident Count', height=450, width=800, template='plotly_white', margin=dict(l=80, r=80, t=80, b=80))fig.show()```The chart above shows the trend in annual security incidents from 2000 to 2024. We can observe a slow increase in incidents over time, with a significant spike in 2018, followed by a decline in 2019, and then another peak in 2024.```{python}import plotly.graph_objects as goyearly_casualties = df.groupby('Year')[['Total killed', 'Total wounded', 'Total kidnapped']].sum().reset_index()yearly_casualties.columns = ['Year', 'Deaths', 'Injuries', 'Kidnappings']fig = go.Figure()fig.add_trace( go.Scatter( x=yearly_casualties['Year'], y=yearly_casualties['Deaths'], mode='lines+markers', name='Deaths', line=dict(width=2, color='#d62728') ))fig.add_trace( go.Scatter( x=yearly_casualties['Year'], y=yearly_casualties['Injuries'], mode='lines+markers', name='Injuries', line=dict(width=2, color='#ff7f0e') ))fig.add_trace( go.Scatter( x=yearly_casualties['Year'], y=yearly_casualties['Kidnappings'], mode='lines+markers', name='Kidnappings', line=dict(width=2, color='#2ca02c') ))fig.update_layout( title={'text': 'Annual Affected Personnel (2000-2024)','y':0.9,'x':0.5,'xanchor': 'center','yanchor': 'top' }, xaxis_title='Year', yaxis_title='Personnel Count', height=450, width=800, template='plotly_white', margin=dict(l=80, r=80, t=80, b=80), legend=dict(orientation="h", y=1.1, x=0.5, xanchor="center"))fig.show()```The figure above shows the annual trend of affected persons by deaths, injuries and abductions. While the number of affected persons has been on a slow upward trend until 2024, the number of fatalities is particularly high in 2024, which may be attributed to the ongoing conflict in Palestine.These two charts provide a chronological overview of security incidents and their impact on aid workers. The data shows a worrying pattern, with a general increase in incident rates over time. In particular, the sharp rise in fatalities in 2024 means that the global conflict brings a threat to the lives of humanitarian workers as well.Now, let's examine the most severe incidents from 2024 to better understand what contributed to this dramatic increase:```{python}import plotly.graph_objects as goincidents_2024 = df[df['Year'] ==2024].sort_values('Total killed', ascending=False).head(10)deadly_incidents = incidents_2024[['Incident ID', 'Country', 'City', 'Total killed', 'Total wounded', 'Total kidnapped', 'Means of attack', 'Attack context']].copy()fig = go.Figure( data=[go.Table( header=dict( values=['Incident ID', 'Country', 'City', 'Deaths', 'Injuries', 'Kidnappings', 'Attack Method', 'Context'], fill_color='#d62728', align='left', font=dict(color='white', size=12) ), cells=dict( values=[ deadly_incidents['Incident ID'], deadly_incidents['Country'], deadly_incidents['City'], deadly_incidents['Total killed'], deadly_incidents['Total wounded'], deadly_incidents['Total kidnapped'], deadly_incidents['Means of attack'], deadly_incidents['Attack context'] ], fill_color='lavender', align='left', height=30, font=dict(size=11) )) ])fig.update_layout( title={'text': 'Top 10 Deadliest Aid Worker Security Incidents in 2024 - All in Palestinian Territories','y':0.9,'x':0.5,'xanchor': 'center','yanchor': 'top' }, height=400, width=1000, margin=dict(l=20, r=20, t=80, b=20))fig.show()```This table reveals a deeply concerning result: all of the deadliest incidents in 2024 occurred in the Palestinian territories. The extraordinary concentration of fatal incidents in this single region means the disastrous impact of the ongoing conflict on humanitarian workers. These incidents represent an unprecedented humanitarian crisis for aid workers in the region, which shows the urgent need for a ceasefire and peaceful resolution to the conflict.### 2. Geographic Distribution Hotspot AnalysisNext, let's analyze the global geographic distribution of security incidents to identify countries and regions with the highest risks.```{python}import plotly.express as pxcountry_incidents = df.groupby('Country').agg({'Incident ID': 'count','Total killed': 'sum','Total wounded': 'sum','Total kidnapped': 'sum','Latitude': 'mean','Longitude': 'mean'}).reset_index()country_incidents.columns = ['Country', 'Incident Count', 'Deaths', 'Injuries', 'Kidnappings', 'Latitude', 'Longitude']country_incidents['Total Affected'] = country_incidents['Deaths'] + country_incidents['Injuries'] + country_incidents['Kidnappings']fig = px.scatter_geo( country_incidents, lat='Latitude', lon='Longitude', color='Incident Count', size='Total Affected', hover_name='Country', hover_data=['Incident Count', 'Deaths', 'Injuries', 'Kidnappings'], projection='natural earth', color_continuous_scale=px.colors.sequential.Reds)fig.add_annotation( text="Bubble size indicates affected personnel, color indicates incident count", showarrow=False, x=0.5, y=-0.1, xref="paper", yref="paper", font=dict(size=12))fig.update_layout( title={'text': 'Global Distribution of Aid Worker Security Incidents','y':0.9,'x':0.5,'xanchor': 'center','yanchor': 'top' }, height=600, geo=dict( showland=True, landcolor='rgb(243, 243, 243)', countrycolor='rgb(204, 204, 204)', showocean=True, oceancolor='rgb(230, 230, 250)', showcoastlines=True, coastlinecolor='rgb(128, 128, 128)', showcountries=True, ), margin=dict(l=20, r=20, t=80, b=60))fig.show()```The bubble chart above displays the geographic distribution of incidents. We can clearly see that most incidents are concentrated in the Middle East , South Asia, Africa, and around Mexico. Countries like Afghanistan, South Sudan, Syria and Sudan have a lot of historical data. In addition to this it can be seen that most of the countries in Africa are covered by war.To further show details, we can create an interactive heat map showing the spatial clustering of security incidents:```{python}import foliumfrom folium.plugins import HeatMapgeo_data = df[df['Latitude'].notna() & df['Longitude'].notna()].copy()m = folium.Map(location=[0, 0], zoom_start=2, tiles='CartoDB positron')heat_data = [[row['Latitude'], row['Longitude']] for idx, row in geo_data.iterrows()]HeatMap(heat_data, radius=15, blur=15, max_zoom=13).add_to(m)title_html =''' <h3 align="center" style="font-size:16px"><b>Global Aid Worker Security Incidents Heat Map</b></h3> '''m.get_root().html.add_child(folium.Element(title_html))m```We can also create a bar chart analyzing the affected personnel by country, focusing on the highest-risk countries:```{python}import plotly.graph_objects as gotop_countries = country_incidents.sort_values('Incident Count', ascending=False).head(15)fig = go.Figure()fig.add_trace( go.Bar( y=top_countries['Country'], x=top_countries['Deaths'], name='Deaths', orientation='h', marker=dict(color='#d62728') ))fig.add_trace( go.Bar( y=top_countries['Country'], x=top_countries['Injuries'], name='Injuries', orientation='h', marker=dict(color='#ff7f0e') ))fig.add_trace( go.Bar( y=top_countries['Country'], x=top_countries['Kidnappings'], name='Kidnappings', orientation='h', marker=dict(color='#2ca02c') ))fig.update_layout( title={'text': 'Top 15 Countries Most Affected by Security Incidents','y':0.9,'x':0.5,'xanchor': 'center','yanchor': 'top' }, barmode='stack', height=600, width=900, yaxis=dict(title='Country', categoryorder='total ascending'), xaxis=dict(title='Affected Personnel'), legend=dict(orientation="h", y=1.1, x=0.5, xanchor="center"), template="plotly_white", margin=dict(l=20, r=20, t=80, b=20))fig.show()```The last chart shows the countries with the most affected people. As can be seen, Afghanistan has traditionally led the way in terms of casualties, as well as countries like South Sudan, which have been ravaged by war. Unusually, there have been almost no kidnappings in the Palestinian territories, suggesting that conflicts there tend to be more intense and deadly than those involving kidnappings.## SummaryOur analysis reveals concerning patterns in the security situation faced by aid workers all over the world, with a particularly sharp situation in the Palestinian territories in 2024. While the data shows an overall increasing trend in incidents globally over the years, the concentration of fatal incidents in the Palestinian territories in 2024 stands out as an unprecedented humanitarian emergency. Besides, the distinct pattern of high fatalities with almost no kidnappings in the Palestinian territories reflects the intense nature of the conflict there.These findings highlight the urgent need for an immediate ceasefire and peaceful resolution to the conflict in the Palestinian territories.Afghanistan remains a chronic high-risk environment for aid workers. This problem may be due to the large number of humanitarian workers caught up in the war in Afghanistan.The international community must prioritize the protection of humanitarian workers who risk their lives to provide essential services to vulnerable populations in conflict areas. Without such protection and a path to peace, the ability of aid organizations to operate effectively in those areas is severely compromised, further exacerbating the suffering of civilians. In addition, the risks to the work of these workers can be fundamentally eliminated if the various countries of interest can peacefully reach an agreement.